package effectivejava.chapter3.item14;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

/**
 * @author baicaixiaozhan
 * @since 2020/9/17
 */
public class ComparableDemo {

    public static void main(String[] args) {

        // 如果需要实现 排序(对比), 尽可能实现 Comparable 接口,
        // 可参考封装数据类型(Integer, Long), String, ArrayList...
        // java8 中 Comparator (函数式接口) 提供了比较全面的 compare 方案

        List<Integer> integers = new ArrayList<>();
        integers.add(2);
        integers.add(77);
        integers.add(34);
        integers.add(1);
        integers.add(33);
        integers.stream()
                .sorted(Integer::compareTo)
                .forEach(System.out::println);

        List<String> strings = new ArrayList<>();
        strings.add("张三");
        strings.add("李四");
        strings.add("王五");
        strings.add("赵六");
        strings.add("田七");
        strings.stream()
                .sorted(Comparator.comparingInt(String::hashCode))
                .forEach(System.out::println);
    }


}
